package com.pattern.objectcreator.factorymethod;

/**
 * @author yangguanzan
 * @date 3/16/22
 * @description
 */
public class NuwaHumanFactory implements BaseHumanFactory {

    /**
     * 造人
     *
     * @param humanClass 具体的人类的类型
     * @return 具体的人类
     */
    @Override
    public BaseHuman createHuman(Class<? extends BaseHuman> humanClass) {
        try {
            return humanClass.newInstance();
        } catch (InstantiationException|IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 转为简单工厂模式造人
     *
     * @param humanClass 具体的人类的类型
     * @return 具体的人类
     */
    public  static BaseHuman  createSimpleHuman(Class<? extends BaseHuman> humanClass) {
        try {
            return humanClass.newInstance();
        } catch (InstantiationException|IllegalAccessException e) {
            e.printStackTrace();
        }
        return null;
    }

}
